// 引入os模块（Node.js内置，用于获取操作系统信息）
const os = require('os');
// process是全局对象，无需引入，用于获取进程信息

console.log('=== 系统与进程信息汇总 ===');

// 1. CPU架构信息
console.log('1. CPU架构信息:', os.arch()); // 输出：x64（64位）、ia32（32位）等

// 2. 操作系统信息
console.log('2. 操作系统类型：', os.type()); // 输出：Windows_NT（Windows）、Darwin（macOS）、Linux（Linux）
console.log('   操作系统平台：', os.platform()); // 输出：win32（Windows）、darwin（macOS）、linux（Linux）
console.log('   操作系统版本：', os.release()); // 输出：例如 Windows 10 为 10.0.19045，macOS 为 22.6.0

// 3. 进程ID信息
console.log('3. 当前进程ID(PID):', process.pid); // 每个运行的Node.js程序都有唯一PID
console.log('   父进程ID(PPID):', process.ppid); // 启动当前进程的父进程ID（例如终端进程ID）

// 4. Node.js可执行文件路径
console.log('4. Node.js可执行文件路径:', process.execPath); // 输出node.exe（Windows）或node（Linux/macOS）的完整路径

// 5. 内存使用情况（单位：字节，转换为MB更易读）
const formatMemory = (bytes) => (bytes / (1024 * 1024)).toFixed(2) + ' MB'; // 字节转MB，保留2位小数

console.log('5. 内存使用情况：');
console.log('   总内存（系统）：', formatMemory(os.totalmem())); // 系统总内存
console.log('   空闲内存（系统）：', formatMemory(os.freemem())); // 系统空闲内存
console.log('   进程已用内存：', formatMemory(process.memoryUsage().rss)); // 进程实际占用的物理内存（Resident Set Size）
console.log('   进程堆内存（已用）：', formatMemory(process.memoryUsage().heapUsed)); // V8引擎堆内存已使用量
console.log('   进程堆内存（总分配）：', formatMemory(process.memoryUsage().heapTotal)); // V8引擎堆内存总分配量